1. Introduction

1.1. What is DataScope?

1.2. Document conventions

2. Installation

2.1. System requirements

2.2. The installation procedure

2.2.1. Installing DataScope

2.2.2. Installing the Microsoft ODBC drivers

2.2.3. Adding data sources

2.2.4. Using higher display resolution

3. Analysis with DataScope

3.1. The example project 83CARS.DPR

3.2. Types of database fields

3.3. Selection and filtering

3.3.1. Local selection

3.3.2. Global selection

3.3.3. Using both union and intersection to filter records

3.3.4. Creating a new numeric field based on the global selection

3.3.5. Creating a new project based on the global selection

3.3.6. Deleting or complementing a selection

3.4. The field windows

3.4.1. Identifier field window

3.4.2. Numeric field window

3.4.3. Discrete field window

3.4.4. Relational window

3.5. Questions and answers step by step

4. Using DataScope

4.1. Before you begin

4.2. Working with projects

4.3. Getting help

4.4. The toolbar

4.5. The status bar

4.6. Using the field windows

4.6.1. Selecting a record

4.6.2. Modifying the local selections

4.6.3. Moving only on globally selected records

4.6.4. Adding/removing record markers

4.7. ODBC basic concepts

4.8. The File menu

4.8.1. Preprocessing

4.8.2. Open

4.8.3. Close

4.8.4. Save

4.8.5. Save as

4.8.6. Search

4.8.7. Information

4.8.8. List of recently used files

4.8.9. Exit

4.9. The Edit menu

4.9.1. Copy

4.10. The Data menu

4.10.1. View

4.10.2. Search

4.10.3. Names & measurements

4.10.4. Field remarks

4.10.5. Delete all record markers

4.10.6. New field from weighted sum

4.11. The Field menu

4.11.1. Direction

4.11.2. Change view

4.11.3. Short names

4.11.4. Rearrangement

4.11.5. Delete

4.12. The Selection menu

4.12.1. Complement local

4.12.2. Delete local

4.12.3. Delete all locals

4.12.4. Intersection

4.12.5. Union

4.12.6. Complement

4.12.7. Delete

4.12.8. New project from global

4.12.9. New field from global

4.13. The Options menu

4.13.1. Colors

4.13.2. Show measurements

4.13.3. Show toolbar

4.13.4. Show status bar

4.13.5. Save as default

4.14. The Window menu

4.14.1. Open windows

4.14.2. Arrange all

4.14.3. Maximize/Restore

4.14.4. Next

4.14.5. Previous

4.15. The Help menu

4.15.1. Index

4.15.2. Using Help

4.15.3. About

4.16. Using the spreadsheet

5. Appendix

A. Hot key reference

B. Memory requirements of projects

C. Data limits

D. Troubleshooting


1. Introduction


1.1. What is DataScope?

DataScope is a Microsoft Windows 3.1 application that helps you to perform efficient analysis on your databases. The software graphically displays the contents of an arbitrary database and provides many tools to study the connections between the records or point out alternatives with (positively or negatively) exceptional features. DataScope can also be used as an on-line visual query system. You further have a possibility to filter the database by applying complex conditions and continue your work on a subset of the records.

By using DataScope, you can see the connections between your data better and quicker, so you can make more efficient decisions. We will demonstrate this through an example. Consider that you have a database whose records contain data about cars. You have the following data: the car's brand and type, price, performance, consumption, cubic capacity and type of fuel. We will refer to these fields during the introduction.

Field types	In the database you wish to display, there can be three types of fields:
1.	Identifier field: this helps in identifying the records. (In the example, this is the names of the cars.)

2.	Numeric field: this can contain a number or quantity (e.g. the Price or the Consumption field). DataScope can also handle records where no data is available for one or more fields ('N/A' value).

3.	Discrete field: this generally contains a few different (not necessarily numeric) values. (In the example, the field containing the fuel type  'D' for diesel, 'N' for normal, 'S' for super  is discrete.)

Displaying the fields	DataScope displays data in windows. Each window represents one (or two) fields of the database. The layout of a window depends on the type of the field:
1.	Identifier fields are represented with a list (window 1 in the picture). The list contains the contents of the identifier fields and also the contents of the field represented by the active window. The list is sorted by the latter field. (In the picture, the cars are sorted by price and the prices are shown beside the cars' names.) If you activate another window, the sequence will change. (DataScope sorts records during a pre-processing step, so this does not take time.) In this way, you can examine the data sorted by any field.

2.	Numeric fields are represented with their distribution function (see window 2 in the picture). The X axis goes from the least to the greatest value. On the Y axis, 0% represents the least and 100% the greatest value. In the diagram, you can see the relation of the currently selected record to the others. (In the picture, the Audi 80 D is selected in window 1, and the small rectangle in the diagram of window 2 shows that this car's price is relatively high compared with the others. You can see the price (27850 DEM) under the X axis. Near the Y axis, you can see that 95.2% of the cars in this database are cheaper than this car.) You can click to any point in the diagram and the name list will show you the closest car. Other windows will show the other features.

3.	Discrete fields can be displayed in several formats, such as a pie chart or bar chart. These diagrams also show which category the selected record belongs to. (In the picture, a line appears under the bar chart, in area 'D'.) You can also group categories. (For example, if you do not want to distinguish between various petrol types (normal or super), you can simply work with diesel- and petrol-powered cars.)

Relational diagram	The most efficient display mode is the relational diagram (window 3). This allows you to analyse the connections between two numeric fields of the database. The two axes represent the percentage values of the two fields. The records of the database are represented by points that are displayed at the intersection of the distribution function values of the two fields.
The relational diagram gives the possibility to find the records with exceptional features. The further a point is from the diagonal line y = x, the more the given record deviates from the average. In the example, window 3 displays the connection between the 'Performance' (X axis) and the 'Cubic capacity' (Y axis) fields. The place of the selected record (Audi 80 D) is marked by a double-bordered rectangle. The diagram shows that this car has a relatively low performance (only 14.5% of the cars have a lower one), but a relatively high cubic capacity. This is a disadvantageous feature because of the high tax rate. The diagram also shows that, for most of the cars, there is a linear connection between the two features and there are mostly negative exceptions.

If you see an interesting point in the diagram, you can click on it with the mouse. Other windows (including the identifier list) will show which record it is and what  its other features are like. You can open different relational diagrams, of course, and if you see an exceptional record in one, you can click on it to determine whether it is exceptional in other respects, too.

16 windows	Up to 16 windows can be opened, so you can analyse the database according to 16 fields (or field pairs) at the same time.
Selection, filtering	This software is not only suitable for analysis of individual records. There is a possibility to select a group of records. In any window (i.e. for any feature), you can select an arbitrary group of data. This is called local selection. A global selection can be made from the intersection ('and' operation) or the union ('or' operation) of the local selections. In this way, you can easily select the cheap and low-consumption cars, for example. All other windows will be updated to show which the selected elements are, so you can then examine the performance limits of the selected cars, for example.  The relational diagrams will also show the selected cars, allowing you to select the ones with exceptional features. You can  create a new DataScope project that contains only the globally selected records, so you can filter the uninteresting records, and make the data easier to survey.
Marking records	If you find a noteworthy record, you can give it a two-letter identifier. The given identifiers will be displayed in all diagrams, so you can follow them easily. This also allows you to compare some records quickly (e.g. you can see the cheapest car immediately). In the picture, we have marked two cars 'A' and 'M'.
Importing data through ODBC	DataScope can import data by using Microsoft's Open Database Connectivity (ODBC) standard. This standard allows handling of any type of database through a driver. Many drivers are delivered with DataScope. With them, you can import data from text, dBase, Excel, Paradox, Btrieve, MS-Access or FoxPro files, and from databases on any SQL server. Additional drivers are available at Microsoft.
Synchronicity	One of the most interesting features of DataScope is the full synchronicity. As you could see above, you can examine an element of a database from many aspects simultaneously. You can select elements with specific features from one aspect and see their connection from other aspects.
Interactivity, graphical query	The database can be queried interactively, directly from the displayed diagrams. This makes typed commands unnecessary. You simply have to select a point or an interval with the mouse to see the desired information. In this way, you can use DataScope as an on-line visual query system.
Context- dependent analysis	Numeric data can be analysed in an exciting new way. Until now, you needed considerable time to determine where a record is situated among the others. The value of the distribution function now shows this to you immediately. For example, if you hear that car X has an Y liter/100 km consumption, you do not know how good it is until you have browsed through car-catalogs for hours or used statistical methods to get a picture about the current situation. Now, with DataScope, you just read the percentage value from the Y axis.
Chapter 3 provides you with useful information that helps you to analyse your data with DataScope most effectively.


1.2. Document conventions

We have used the following conventions throughout this document:

Bold text	This typeface indicates names of menu commands and dialog box elements. (For example, the File/Exit menu command or the Cancel button.)
[CAPITALS]	Small capital letters in brackets indicate keys or key combinations, such as [CTRL+TAB] or [SHIFT].
Courier	This represents text that should be typed exactly as it appears, e.g. a:\setup.
!	This sign indicates that an important note follows.
K M	These letters appear near the description of keyboard/mouse-specific procedures.


2. Installation


2.1. System requirements

Software	DataScope runs under Microsoft Windows version 3.1 or later. Since the installation program also runs under Windows, you need to install Microsoft Windows before installing DataScope.
	DataScope uses the Arial and MS Sans Serif fonts, which come with Windows 3.1. If these fonts are missing, this can cause undesirable effects. In the usual case, these fonts are installed with Microsoft Windows, but they can be deleted from Control Panel. If some text is unreadable, it is very likely that some of these fonts are missing, and you need to reinstall them.
Minimal hardware	DataScope needs about 1.5 MBytes of free hard disk space during the installation. (After the installation, DataScope takes about 1 MByte.) Additional disk space is required to install the Microsoft ODBC drivers. If you install all drivers, and no previous versions of the drivers exist, you need an additional 3 MBytes of disk space. However, you do not need to install all drivers, but just the ones you wish to use. You can install additional drivers at any time.
Some operations in DataScope also require a mouse.

Recommended hardware	The recommended hardware configuration is: - 4 MByte RAM;
-	a color Super VGA graphics card and a monitor with at least 800´600 pixel resolution;

-	a 486 processor;

-	enough free disk space for DataScope projects (see Appendix B).

!	The amount of memory needed mainly depends on the size of the databases you wish to analyse. Appendix B will give you detailed information about how much memory is needed for a database, and how to use virtual memory, if necessary.


2.2. The installation procedure


2.2.1. Installing DataScope

1.	Start Windows.

2.	Insert the disk labeled 'Program Files' into the drive.

3.	In Program Manager, choose the File/Run menu command. A dialog box appears. Type the text

<drive>:\SETUP

and click on OK.

(In the above line, replace <drive> with the letter of the disk drive you inserted the disk into.)

4.	You will have to wait a little until Setup starts. Setup will then ask for the destination directory, where the DataScope files will be copied. You can accept the path offered by Setup, or you can specify a different one. If the specified directory does not exist, Setup will create it.

5.	Click on OK. Setup checks whether there is enough free space on the given drive. If there is not, a message appears, and you will be returned to step 4. You can specify a different drive and directory, or switch to File Manager and delete some unnecessary files.

6.	If there is enough free space, Setup copies the files to your hard disk. A progress indicator shows the status of the installation.

7.	Next, Setup creates a group in Program Manager, with a DataScope icon. Later, you can start DataScope by double-clicking on this icon.

8.	Finally, a message indicates that the installation of the program files has finished. You will be asked to insert the disk labeled 'Microsoft ODBC drivers' and the ODBC Setup program will start. Please continue reading with the next section.


2.2.2. Installing the Microsoft ODBC drivers

The Open Database Connectivity (ODBC) drivers make it possible to read data from various database types. (See Section 4.7. for more information.) We have included several ODBC drivers with DataScope. Additional drivers can be obtained from Microsoft Corporation or the manufacturer of the database system you are using.

1.	When the installation of the DataScope program files has finished, the ODBC Setup program will start. (You can also start it manually at a later time by running ODSETUP.EXE from the 'Microsoft ODBC Drivers' disk.)

2.	After a short time, a welcome message appears. Click on Continue to go on. Next, you will see a list of available ODBC drivers. Select the ones you wish to install, and then click on the OK button.

You do not need any drivers to run DataScope, you need only the basic ODBC components. If you do not wish to pre-process databases, do not select any drivers from the list, and only the basic ODBC components will be copied to your hard disk.

3.	If Setup finds that a driver for a database type is already installed, it displays the version number of the old and the new driver, and asks whether you wish to replace the old driver.

4.	Setup copies the necessary files to the Windows directory, so it is important for the Windows drive to have enough free space. To install all the drivers included in the DataScope package, you need about 3 MBytes of free disk space.

Some of the ODBC files reside on the disk labeled 'Program Files', so the installer may prompt for this disk during the file copy process.

5.	When all files are copied, you can configure the ODBC data sources. This can also be performed later by starting Control Panel, and choosing the ODBC icon. You will find more information about this step in Section 4.7.

6.	The installation is now complete. If you need additional drivers at a later time, you can use the ODBC icon of Control Panel. Push the Drivers button in the dialog box that appears.


2.2.3. Adding data sources

After installing DataScope, you can open the example project (.DPR) files that are copied to the EXAMPLES subdirectory. However, if you wish to create your own project by using the File/Preprocessing menu command, you may need to add data sources first. This can be done with Control Panel. See Section 4.7. for detailed information about adding and configuring data sources.


2.2.4. Using higher display resolution

If you have a Super VGA graphics card, we strongly recommend that you configure your system to a resolution of 800´600 pixels, or more. If you use the 640´480 resolution, the DataScope window may look overcrowded to you.


3. Analysis with DataScope

In this chapter, we will go through the database field types and the types of the windows representing fields. You will also find many useful tips here that will help you to use DataScope most effectively.

Sometimes we will refer to the menu commands that can be used to complete specific tasks. If you wish to try out what you read, see the next chapter for information about using these menu commands.


3.1. The example project 83CARS.DPR

DataScope stores the databases in project files. A project file contains the database data and all settings necessary for you to continue your work later. The next chapter will give you more information about creating and opening project files.

We will often refer to an example database throughout this chapter. This is the 83CARS.DPR project file, created on the basis of the 83CARS.TXT database. The database contains the following data on 83 cars (the parentheses contain the measurement units): name, price (DEM), performance (HP), cubic capacity (cm3), consumption (l/100 km) and fuel type used (diesel, normal or super).


3.2. Types of database fields

The database you wish to analyse can contain various fields. You can assign the following three types to them during the pre-processing:

Identifier	The identifier field is used to identify the records. It is important for the identifier field to be unique, or almost unique, to help you in identifying the records easily.  In 83CARS.DPR, the identifiers are the names of the cars. In a database containing persons' data, the identifier can be the name or the personal ID number, or both (you can specify more than one identifier).
It is not absolutely necessary for a project to contain an identifier field. However, if there is no identifier, you can only use DataScope to examine tendencies, not specific records.

Numeric field	This field type can be used to display numeric data. If a database field contains (mostly) numbers, you can specify it as a numeric field. (Examples are price, consumption, etc. in 83CARS.DPR, or salary or age in a database containing persons' data.) Numeric fields are represented with a distribution function (see later).
It is not a problem when a field specified as numeric contains non-numeric text for some records. These records will be handled as if no data is available for this field and they do not appear in the distribution diagram of the field.

Discrete field	When a field contains mostly non-numeric data, or contains numeric data but only a few different values, it is better to specify its type as discrete (for non-numeric fields, it must be discrete). DataScope will make categories from the records. A category will consist of records for which the field value is the same.
In the car database, the discrete field is the fuel type (Fuel field). Its possible values are 'D', 'NF' and 'SF'. In a product database, a discrete field could be a product classification, for example ('A', 'B', 'C' or '1', '2', '3').

Leaving out fields	If you do not need a field in the analysis, you can leave it out of the project. This may also become necessary if the database is too large to be handled by DataScope. By leaving out fields, you can decrease the size of the project.


3.3. Selection and filtering

Before we introduce the field windows, you need to become familiar with some concepts. As you could read in the introduction, DataScope can be used to examine record groups as well as records. To examine record groups, you need to select the group. There are two kinds of selection: local and global selection.


3.3.1. Local selection

You can select records by any field. For example, you can select cars between 15000 and 20000 DEM by the 'Price' field, all Audi's and BMW's by the 'Name' field, or all diesel cars by the 'Fuel' field. You can also select records one by one by each field, so this selection can be made with arbitrarily complex conditions.

This is called local selection. You can locally select records by each field. These local selections are independent from each other and can be modified at any time.

All field windows show the local selections made by the field(s) they represent. The identifier windows play a special role, because they always show the local selection of the field that the active field window represents.

The number and percentage of records locally selected by the field displayed in the active field window are shown in the status bar after the text 'L:'.


3.3.2. Global selection

A global selection can be made on the basis of the local selections, by using the Selection/Union or Selection/Intersection menu command. There is only one global selection at a time.

By using the global selection, you can determine which records satisfy a given condition.

-	By using the Selection/Union command, you can examine 'or' connections. For example, if you select the cars cheaper than 15000 DEM by the Price field and the cars whose consumption is lower than 7 l/100 km by the Consumption field, you get the cheap or low-consumption cars when you create the union.

-	By using the Selection/Intersection command, you can examine 'and' connections. If you have the previously mentioned local selections (cars cheaper than 15000 DEM and with a consumption lower than 7 l/100 km), creating the intersection results in cheap and low-consumption cars.

!	DataScope performs the above two operations on fields that are represented in at least one opened window. If you wish to leave a field out of the operation, delete its local selection or close all windows representing the field.
!	When DataScope creates an intersection of local selections, it does not use the fields having no local selection at all, because any field with an empty local selection would make the global selection empty. So if your result is an empty global selection, it means that there is no record satisfying the given conditions, ignoring the fields with no conditions specified.
You can modify the local selections and re-create the global selection at any time. This may be necessary if there is no record satisfying all the specified conditions. In this case, you can try enlarging one or more of the local selections and recreate the intersection.

The number and percentage of globally selected records are shown in the status bar after the text 'G:'.


3.3.3. Using both union and intersection to filter records

The Selection/Union and Selection/Intersection menu commands always delete the previous global selection and create a new one based on the local selections. This helps you to modify a local selection and see the effect of the modification on the global selection by recreating that. However, you can perform only one type of operation on the local selections in this way. If you wish to make a global selection based on a more complicated condition (using both union and intersection operations), you need to use another DataScope tool.

After creating a global selection on which you wish to perform another operation, first you need to 'freeze' it by using the Selection/New field from global command. This command creates a new discrete field, which has two categories: 'Yes' and 'No'. Records belonging to the current global selection go into the 'Yes' category; other records go into the 'No' category. You need to give the new field a name. Pick the name carefully to help you to remember the conditions the new field is based on. You can also use the Data/Field remarks command to attach a remark to your new field.

Now you have a discrete field that substitutes a complete local selection system and an operation. If you select its 'Yes' category locally, you select the records that were globally selected when you created the field. Because you preserved the local selections and the operation in the new field, you do not need them anymore. You can modify the local selections for the next operation.

Let us see an example. Consider you want a car, which has either a low consumption or a low cubic capacity, and it must be cheap, too. To select these cars globally, locally select the cheap and the low-consumption cars in the appropriate field windows first, and choose the Selection/Union command. Now you have globally selected the cars satisfying the first part of the condition. Do the following:

1.	Choose the Selection/New field from global menu command, and create a new discrete field with the name 'Low cons. or low cc.', for example.

2.	Delete all local selections (Selection/Delete all locals).

3.	Open a window for the new field with the Window/Open windows menu command, and locally select the 'Yes' category. Now you have locally selected the low-consumption or low-cubic-capacity cars.

4.	Open a window for the Price field, and locally select the cheap cars. Then choose the Selection/Intersection menu command. The new global selection will contain the desired cars.


3.3.4. Creating a new numeric field based on the global selection

You also have a possibility to create a new numeric field based on the current global selection and an existing numeric field. This allows you to examine the distribution of records satisfying a given condition. The new field can be created with the Selection/New field from global command.

When DataScope performs this operation, it copies the values of the base field to the new field, except for the records not in the global selection, where it copies 'N/A'. The window representing the new field will show the distribution function only for the records satisfying the condition. An interesting application of these 'conditional fields' is described in Section 3.4.2.


3.3.5. Creating a new project based on the global selection

You can create a new project based on the global selection by using the Selection/New project from global command. The newly created project will contain only the records that belong to the current global selection.

If you have a large project, it is a good idea to decrease its size by eliminating the uninteresting records. The data will become easier to survey, and DataScope will use a smaller amount of system resources and work faster.


3.3.6. Deleting or complementing a selection

The local selection of a field can be deleted by choosing the Selection/Delete local menu command. If you wish to delete the local selection for all fields, choose the Selection/Delete all locals command. The global selection can be deleted with the Selection/Delete command.

You also have a possibility to complement the selections. Selected records will be unselected, and not selected records will become selected. This can be done with the Selection/Complement local and the Selection/Complement commands.


3.4. The field windows

This is probably the most important section in this manual. Here you will learn the layout of the windows representing database fields. You will also find many useful hints that will help you to use DataScope more effectively. Section 3.5. may also be of great use to you: it contains questions you may want to ask about the data, and step-by-step instructions on how to answer them.

DataScope displays the database in windows. Each window represents one or two fields of the database. There are several window types; the type of the window depends on the type of the field it represents, and the type can also be influenced with the Window/Open windows menu command. You can open up to 16 field windows simultaneously.

There is always an active window, on which most of the menu commands operate. The appearance of the identifier windows (i.e. windows representing identifier fields) also depends on which the active window is. Their lists are always sorted by the field represented in the active window.

!	A general note: if you wish to use the mouse to move in the database by the sorting order of the field represented by the active window, use only the tools provided in the window. Clicking on another window's tools will activate that window and therefore change the sorting order.


3.4.1. Identifier field window

Layout	An identifier field is represented with a list. The sorting order of this list depends on which the active window is:
-	If the identifier window is active itself, the list elements are in alphabetical order.

-	If another field window is active, the list is sorted by the values of the field represented by that window.

-	If a relational window (see later) representing two fields is active, the list is sorted by the values of the first field (represented on the horizontal axis).

The identifier of the selected record is displayed in inverse. Near the identifiers, you can see two rectangles for the local/global selection. If the right rectangle appears, the record belongs to the current global selection.

The smaller rectangle, showing the local selection state of a record, plays a similar role, but with an important difference: this rectangle always shows the local selection state of the field represented by the active window. If you activate another window, the identifier window will display the local selection of the field represented by that window. (This is useful, because you can see both the values and the identifiers of the locally selected records in this way.) To view/modify the local selection of the identifier field, activate the identifier window itself.

You can also see the record markers near the identifiers. The last column shows the value(s) of the field(s) represented by the active window.

Tips	If you wish to examine some records from closer, it is a good idea to assign record markers to them. Marked records are easy to follow in the diagrams.
The identifier window is also useful after creating a global selection. If you wish to examine not only tendencies, but also concrete records, you can step along the globally selected records and see their identifiers in this window.

If you click on a point in a relational diagram (see later), you can see the identifier of the record it represents in this window.


3.4.2. Numeric field window

Layout	A numeric field is represented by its distribution function. The distribution function consists of 'stairs'. The X axis of the coordinate-system goes from the least to the greatest value of the field, while the Y axis goes from 0% to 100%.
The currently selected record is marked by a small rectangle on the function curve. Note that there can be more records with the same value and they are represented with the same point. Therefore, it is possible that you move to the next record, but the position of the small rectangle does not change.

If the represented field contained non-numeric values for some records in the original database, these records are merged into one 'N/A' group. The members of the group do not appear in the diagram.

The lower part of the window shows the field value for the selected record, and also the least and the greatest value. On the left side, you can see the percentage value (the value of the distribution function at the selected record). The percentage value shows what percentage of the records precede the current record (depending on the current sorting direction). For example, if a car's price has a percentage value of 40% and the sorting direction is descending, then the 40 per cent of the cars in the database are more expensive than the selected one (because of the descending sorting direction, the first car is the most expensive).

The local and global selections of the field are shown at the right and bottom edges of the window. There are two bars at the right edge. The left bar shows the local, and the right bar shows the global selection. For a selected record, the appropriate part of the bar will be filled.

There are also two bars under the horizontal axis. These bars are always continuous. They show the interval of the selected records. For example, if two cars are globally selected, the cheapest and the most expensive one, the upper horizontal bar of the 'Price' window will last from the left to the right edge of the window.

Tips	The horizontal bars under the X axis are very useful if you wish to see the interval of the records satisfying a specific condition. For example, if you locally select  diesel cars and cars whose performance is greater than 70 HP, and then use the Selection/Intersection menu command, you can see the price interval of the globally selected cars in the Price window, and select the cheapest, for example.
The vertical bar indicating the global selection shows the distribution of the records satisfying the condition. For example, if you globally select the high-performance cars and examine the vertical bar of the 'Price' window, you will see that most of these cars have a high price (the upper part of the bar will have more filled areas).

Now let us see what the distribution function is good for. The distribution function below shows the price distribution of diesel cars. By using pen and paper, you could draw this function as follows:

1.	Start in the lower-left corner of the coordinate-system. This point represents the cheapest car.

2.	Draw a vertical line whose length is proportional to the number of cars that have the same price as this car has.

3.	Find the next price on the X axis and draw a horizontal line to it at the Y coordinate of the end of the previously drawn vertical line.

4.	Repeat steps 2-3 until you arrive in the upper right corner.

The above method leads to certain consequences. We give these consequences to functions with ascending sorting order, but they can be easily applied to descending functions by reversing the appropriate words.

-	If you select a point on the X axis (a price, in this example), the value of the distribution function shows the percentage of the records that precede this record on the basis of the sorting direction (e.g. what is the percentage of the cheaper cars). In this way, you can see the relation of one record to the others.

It is very important that you see the place of the record in the context of the database. It would take enormous work to manually determine the relation of the record to the others.

-	If you select a percentage value on the Y axis, you can see the X value that relates to it. In this way, you can easily examine what value is needed to reach a specific place. For example, if you select the percentage value 75% in the Price window, you can see that what price is needed for a car to be placed into the first quarter.

-	If the distribution function contains a long horizontal line, this means that there are no records in that interval of the X axis. The right side of the above picture shows an example: there are no cars in a large price interval.

-	A long vertical line means that there are many records that belong to one X value. The picture below is an example: it shows the cubic capacities of diesel cars, and you can see that many records have the value 1588 cm3. This is because cars with a cubic capacity of more than 1600 cm3 are taxed. (You can also see a long horizontal line after this point, which means that there are no cars in a larger interval after 1600 cm3.)

-	The concept of the horizontal/vertical line can be used more freely, of course.  For example, if there were many cars between 1580 and 1600 cm3, the line would not be perfectly vertical. In other words, the slope of the distribution function would be higher. The same is true in the horizontal case: if the slope of the distribution function is very low in an interval, this means that only a few records fall in that interval.

We mentioned earlier, in Section 3.3.4., that a numeric field can be created from the global selection. We now demonstrate its use through an example. Consider that you want a closer look at the Price field in the car database. Select diesel cars globally (delete all local selections, select diesel cars locally, make a union or intersection), create a new field based on the Price field, and open its window. Select the car closest to 50% in the new window:

As you can see in the picture below, the percentage value of 52.4% relates to 22475 DEM. The same record is automatically selected in the Price window, too. However, the percentage value is then higher (73.5%). This means that 22475 DEM is a middle-level price for a diesel car, but it is a high price if you examine all cars, so diesel cars are generally more expensive. The 'conditional field' can be used well to derive similar consequences.


3.4.3. Discrete field window

Layout	This window type displays the contents of discrete fields, i.e. fields that have only a few different values. Conventional methods are used to display these fields, such as a pie chart or a bar chart. The chart type can be changed with the Field/Change view menu command.
DataScope makes categories from the records with identical field values. Each category has a three-letter short name, which appears in the diagrams, instead of a full name that would not fit. The short names can also be used to merge categories (see the Tips section below).

The first view type is the pie chart. The chart gives the percentages of the various categories. A short line shows the category of the selected record at the edge of the circle. Local selection is indicated as a thick arc.

Another display form is the bar chart. The selected record is marked with a short line (under area 'D' in the picture). Locally selected categories are marked with a thick border. Inside the bars, you can see what percentages of the individual categories fall into the current global selection.

The last display method is the distribution diagram. This is a fixed-height bar divided on the basis of the percentages of the categories. The local selection and the selected record are marked similarly as for the bar chart. This diagram also shows what percentages of the individual categories fall into the current global selection.

Tips	Discrete diagrams can be used in the usual way to produce statistical consequences. You can easily select a category locally (you can select a whole category only), and use it to filter your global selection. For example, if you have a global selection created with the intersection operation, it is just a click to locally select diesel cars and then perform the operation again to tighten the selection.
If you have created a global selection, you can see how it distributes among the categories. In this way, you can learn what percentages of the records satisfying a specific condition fall into the individual categories. For example, if you select cars cheaper than 20000 DEM and create a global selection containing them, the Fuel window shows you that most of these cars are petrol-driven.

You can also merge discrete categories, if you wish. This can be done with the Field/Short names menu command. If two categories have the same short name, they will be merged as if they were one category. For example, if you wish to examine diesel and petrol-driven cars, you can merge the 'Normal' and 'Super' categories by assigning the same short name to them ('P', for example). After this, there will be two categories only, named 'D' and 'P'.

!	Discrete categories with the same short name will be merged only if they follow each other in sequence. The sequence can be changed with the Field/Rearrangement menu command.


3.4.4. Relational window

Layout	This window type represents two numeric fields. The first field is on the horizontal, and the second is on the vertical axis. (To be more exact, the horizontal/vertical axis of the relational diagram is the vertical axis of the distribution function of the first/second field.) Each record is represented by a point, which is placed at the intersection of the values of the distribution functions of the two fields.
The caption of the window holds the names of the two fields, separated by a comma. The selected record is marked by a small rectangle. Globally selected records are marked with differently colored, larger rectangles. You can find the bars showing the local selections of the two fields at the right and bottom edges of the window.

If a relational window is active, the lists of the identifier windows are sorted by the first field.

The relational window contains small arrows that can be used to move in the database by the sorting sequence of both fields.

If a record has 'N/A' value for one or both of the fields, this record does not appear in the relational diagram.

Tips	The diagonals of the window are important dividing lines. The records that have similar positions by both fields are near this line (for example, cars with an average price/performance relation). The farther a point from the line, the more exceptional the record is. Whether the record is a good or bad exception can be determined on the basis of the sorting direction of the two fields (Field/Direction).
This window type gives you a possibility to notice exceptional records. If you open a relational window, you can see the exceptional points immediately. If you wish to know which record a particular point represents, you can click on the point to select the record and see its identifier in the identifier window. Other windows will show the other features of the record. Naturally, you can open more than one relational window, select an exceptional point in one, and see whether it is exceptional in the other.

The relational diagram also shows tendencies. You can see whether a tendency exists between the two fields, and how strong it is.

The above picture shows the relation of the GNP and the population growth rate of the world's countries in 1988. The tendency can be seen very well: the richer a country, the fewer children are born. There are some obvious exceptions: B - Kuwait, C - Libya, D - Venezuela.

The relational diagram can also be used well to examine whether a better choice is exists than a specific record. Let us open a relational window of the 'Price' and 'Performance' fields of the car database, and choose an ascending sorting order for both of them:

Examine the car marked 'P'. Consider that you want a car with a similar price, but with a higher performance. The price is on the horizontal axis, so the cars with the same price are on a vertical line. The car marked 'A' costs slightly more, but its performance is much higher. You can now determine whether this additional performance is worth the higher price, and, of course, you need to examine the other features of car 'A'.

The diagram also shows that there are cheaper cars with the same performance as car 'P' (e.g. the cars 'B', 'C' and 'D'). Naturally, you need to examine the other features of these cars in this case, too.


3.5. Questions and answers step by step

This section lists many questions that you may want to know about your data, and you will find step-by-step instructions on answering them. If you are new to this book, some of the menu commands and procedures will be unfamiliar to you. Please refer to the appropriate section to learn more about them, or read through the remainder of this manual and then return to this section.

We give the questions and answers specifically on our example database (cars). However, you can easily substitute any database into the questions and the procedures.

Naturally, we cannot list all types of questions that can be answered with DataScope. This section is rather intended to help you to become familiar with the possibilities of DataScope. You can combine the possibilities you learn here to answer more complicated questions.

Which is the cheapest/most expensive car?

1.	Use the Window/Open windows menu command to open a window for the 'Price' field.

2.	You can see the lowest and highest values of the field at the bottom-left and bottom-right corners.

Which is the cheapest/most expensive diesel car?

1.	Open a window for the 'Fuel', 'Price' and 'Name' fields.

2.	Delete all local selections (Selection/Delete all locals).

3.	Locally select the Diesel category in the 'Fuel' window.

4.	Make an intersection by using the Selection/Intersection command.

5.	Activate the 'Price' window. The records will be sorted by price.

6.	Press [SHIFT+HOME] to go to the first globally selected record. You can see its name and price in the 'Name' window. This is the cheapest diesel car. The most expensive diesel car can be viewed by pressing [SHIFT+END].

Or:

1.	Perform steps 1-4 in the above list.

2.	Choose the Selection/New field from global menu command, and create a new numeric field based on the 'Price' field.

3.	Open a window for the new field.

4.	Use the [HOME] and the [END] keys to move the first and the last record. (You may need to step back after moving to the last record, because there might be 'N/A' records at the end of the list.) Read the names and prices in the identifier window.

!	Note that the condition 'diesel car' can be substituted by any other condition that can be described by local selections and an operation.
Do I have an expensive car?

1.	Open windows for the 'Name' and 'Price' fields. Activate the 'Price' window.

2.	Move in the database until your car becomes the selected record, or use the Data/Search command to find your car.

3.	Set the sorting direction of the 'Price' field to ascending.

4.	Read the percentage value near the Y axis in the 'Price' window. The higher it is, the more expensive your car is (compared with the other cars in the database).

Which are the cars with consumption lower than 7 l/100 km and price lower than 20000 DEM?

1.	Open a window for the 'Name', 'Price' and 'Consumption' fields.

2.	Locally select the cars cheaper than 20000 DEM in the 'Price' window, and the cars with a consumption lower than 7 l/100 km in the 'Consumption' window.

3.	Make an intersection (Selection/Intersection command).

4.	Hold down the [SHIFT] key and use the cursor keys and [PGUP], [PGDN], [HOME] and [END] keys to move on the records satisfying the above conditions.

5.	If you wish to move by a different sorting order, activate the window representing the field you wish the records to be sorted by.

How can I easily compare some cars with each other by multiple features?

1.	Open windows for the fields by which you wish to compare the cars. You can also open relational windows.

2.	Select the cars you wish to examine one by one, and give them record markers. Now you can see their positions in the diagrams.

What is the price of a middle-priced car?

1.	Open and activate a window for the 'Price' field.

2.	Move among the records until you see a number near 50% on the vertical axis.

3.	Read the price from the horizontal axis.

What is the price of a middle-priced diesel car?

1.	Open a window for the 'Fuel', 'Price' and 'Name' fields.

2.	Delete all local selections (Selection/Delete all locals).

3.	Locally select the Diesel category in the 'Fuel' window.

4.	Make an intersection by using the Selection/Intersection command.

5.	Choose the Selection/New field from global menu command, and create a new numeric field based on the 'Price' field.

6.	Open and activate a window for the new field.

7.	Move among the records until the vertical axis shows a number near 50%. Read the corresponding price from the horizontal axis.

Are diesel cars generally more expensive than petrol-driven ones?

1.	Open a window for the 'Fuel' and 'Price' fields.

2.	Delete all local selections (Selection/Delete all locals).

3.	Locally select the Diesel category in the 'Fuel' window.

4.	Make an intersection by using the Selection/Intersection command.

5.	Choose the Selection/New field from global menu command, and create a new numeric field based on the 'Price' field.

6.	Open and activate a window for the new field.

7.	Select the car nearest to 50% in the window.

8.	Now look at the percentage value in the 'Price' window. If this value is higher than 50%, it means that the price of a middle-priced diesel car is higher than for a middle-priced non-diesel car, so the answer is Yes. If the value is lower than 50%, the answer is No.

The extent of the difference can also be approximated on the basis of the difference between the two percentage values.

What percentage of the cars under 20000 DEM are diesel-driven?

1.	Open a window for the 'Fuel' and 'Price' fields.

2.	Delete all local selections (Selection/Delete all locals).

3.	Locally select the cars cheaper than 20000 DEM in the Price window.

4.	Make an intersection by using the Selection/Intersection command.

5.	Read the percentage value inside area 'D'. (Use the Field/Change view command if you are currently viewing a pie chart.) This is the percentage of  diesel cars among the cars under 20000 DEM.

!	Note that the condition 'under 20000 DEM' can be substituted by any other condition that can be described by local selections and an operation.
How many cars satisfy a given condition?

1.	Delete all local selections.

2.	Create the local selections that will be parts of the condition.

3.	Make a union or intersection (depending on the condition).

4.	The number and percentage of globally selected records is shown in the status bar, after the 'G:' text.

How many cars have no price data?

1.	Open and activate a window for the 'Price' field.

2.	The status bar shows the number and percentage of the 'N/A' values of the field represented by the active window, after 'N:'.

What are the proportions of diesel and non-diesel cars in the database?

1.	Open and activate a window for the 'Fuel' field.

2.	Choose the Field/Short names menu command. Specify the same short name for all non-diesel categories (in the example, there are two such categories).

3.	Choose the Field/Rearrangement menu command, and rearrange the categories so that categories with the same short name follow each other in the sequence.

4.	The 'Fuel' window now shows the desired proportion.

Is there a connection between the consumption and the performance? What are the exceptions?

1.	Open and activate a relational window for the two fields. Let the 'Consumption' be the first field (represented on the horizontal axis), for example.

2.	Choose the Field/Direction command, and set the direction of both fields to Ascending.

3.	You can see whether there is a relation at a glance. If the points follow a specific curve, there is a relation. The 'strength' of the relation can also be seen: the more the points deviate from the curve, the weaker the relation is.

4.	The most important exceptions can be seen in the upper-left and lower-right corners of the window. (If one or both of the directions are not ascending, the exceptions will be in other corners.) Because the direction of both fields is set to ascending, cars with a low consumption and a high performance are placed in the upper-left corner (good exceptions), while cars with a high consumption and a low performance appear in the lower-right corner (bad exceptions).

I want a car whose price is about 20000 DEM, but I would like it to have a high performance. How can I find these cars?

1.	Open a relational window for the 'Price' and 'Performance'. Let the price be the first field, displayed on the horizontal axis.

2.	Set the directions of both fields to ascending (Field/Direction command).

3.	Use the Data/Search command to find the car whose price is nearest to 20000 DEM. DataScope selects the appropriate car.

4.	Attach a record marker to the selected car. Now examine the cars that are near the vertical line that goes through the selected car. These are the cars whose price is similar. As you go up in the window, you will find cars with a higher performance. You can click on their points with the right mouse button to see their identifiers.

!	The car with the highest performance may have a very high consumption, or some other bad feature. It is a good idea to open windows for the other features, and examine them as you go along the vertical line. If a car seems to be suitable, attach a record marker to it in order to find it more easily later.
I'm definitely not interested in petrol-driven cars. How can I simplify my work?

1.	Delete all local selections.

2.	Locally select the diesel cars.

3.	Use the Selection/Intersection command to create a global selection.

4.	Choose the Selection/New project from global menu command. If you wish, save your project before the process starts. DataScope then deletes all records not in the global selection (currently non-diesel cars).

5.	If you wish, save the newly created project with a new name, for example 83CARS_D.DPR.

How can I locally select all cars that have no price data?

1.	Open and activate a window for the 'Price' field.

2.	By using the [CTRL] key and the left mouse button, select the entire distribution function locally.

3.	Complement the local selection. You now have the 'N/A' price cars selected.

How can I locally select the top 10 cars in performance?

1.	Open and activate a window for the 'Performance' field.

2.	Set the field's direction to descending with the Field/Direction menu command. The cars with the highest performance are now at the top of the list.

3.	Move to the top of the database with the [HOME] key.

4.	Press the [INSERT] key 10 times to locally select the first ten cars.

I have a discrete field. I know the goodness of the individual categories, so I would like to make a numeric field, where the goodness of each category is represented by a number.

1.	Choose the Data/New field from weighted sum command.

2.	Set the weight of your discrete field to 1 and all other weights to 0.

3.	Now select the discrete field in the left spreadsheet. Another spreadsheet appears on the right side. Specify the goodness values of the categories with numbers between 0 and 100.

4.	Click on OK. Now you have a numeric field which sorts the records by the goodness of the categories.


4. Using DataScope


4.1. Before you begin

DataScope is a Windows application. This manual assumes that you are familiar with the basic Windows concepts and procedures, such as starting applications, using menus and dialog boxes, using your mouse, etc. If you are not familiar with them, refer to your Windows documentation.


4.2. Working with projects

DataScope stores the databases in project files. A project file contains all data necessary for you to continue your work later.

Opening a project	Projects are stored in files with the extension '.DPR' by default. A project file can be opened with the File/Open command. After you have installed DataScope, you can open only the example projects in the EXAMPLES directory. If this is not the first time you are using DataScope, you probably have your own saved project files, too.
Creating new projects	A new project can be created with the File/Preprocessing menu command. First you will need to specify the type and name of the database. DataScope will then display the names of the fields in the database, and you have to specify their types (see Section 3.2.). If you do not need a field, you can leave it out of the process.
If your database is in a format that DataScope cannot handle, you need to convert it to a known format with other software, or you can try obtaining an ODBC driver for that format from Microsoft, or the manufacturer of the software that created the database.

After specifying the database and the field types, DataScope reads and converts the database to its own format and creates indexes that will be used to respond quickly to your questions. This process may take a longer time for larger databases. After the conversion has finished, it is a good idea to save the new project by using the File/Save menu command.

Opening field windows	After opening a project, you can begin analysing the data. To do this, you need to display the contents of the database. DataScope displays data in windows. Each window represents one or two fields of the database. The Window/Open windows menu command can be used to open these windows.
Analysis	From this point on, you play the main role. You can examine records, filter data, search for exceptional records in a relational window, etc. The concepts and procedures related to filtering are described in Section 3.3. Sections 3.4. and 4.6. will give you detailed information about using the field windows (i.e. windows representing fields). You will also find many useful tips in Section 3.4., which will help you to use DataScope more effectively. Section 3.5. contains questions you may want to ask about your data, and the answers as step-by-step procedures.
Finishing work	When you have finished for today, you can save your project (File/Save menu command), and exit DataScope. The saved project preserves your last settings, so next time you can continue exactly where you have finished.


4.3. Getting help

	You can ask for help by choosing the Help/Index menu command, or pressing the [F1] button. A topic list will appear, and you can select the topic you need. You can also press [F1] in a dialog box to get information about using it.
If you click on the last button of the toolbar, or press [SHIFT+F1], the mouse cursor will change to the combination of a question mark and an arrow. If you select a menu command with this cursor, or click on any part of the DataScope window, you will get help about the selected object.

Help is displayed by the Windows Help application. If you do not know how to use this application, press [F1] while the Help window is active.


4.4. The toolbar

The toolbar contains buttons that represent the most frequently used menu commands. To learn which button represents which command, do the following:

1.	Push the last toolbar button. The mouse cursor will change to the combination of an arrow and a question mark.

2.	Click on any toolbar button with the new cursor. You will get information about the button. If you wish to get information about all buttons, click inside the toolbar, but outside any of the buttons.


4.5. The status bar

If you choose a menu command, or click and hold down the left mouse button above a toolbar button, the left side of the status bar shows a short description of the selected object.

The right side of the status bar contains information about the current project:

R:	the number of records;

N:	the number and percentage of 'N/A' records of the field represented by the active field window;

L:	the number and percentage of the records locally selected by the field represented by the active field window (see also Section 3.3.);

G:	the number and percentage of the globally selected records in the project (see also Section 3.3.).

If the active field window is a relational type, and therefore represents two fields, then the information in the status bar is related to the first field.


4.6. Using the field windows

This section describes the keyboard and mouse procedures that can be used in the various types of field windows.


4.6.1. Selecting a record

Identifier window	K Use the cursor up/down keys to move one-by one. The [PGUP] and [PGDN] keys move with larger steps. With the [HOME] and [END] keys, you can move to the first and the last record, respectively.
M	Use the scroll bar on the right side of the window to scroll the desired record into view, then click on it with the left mouse button.

Numeric window	K Use the cursor up/down, [PGUP], [PGDN], [HOME] and [END] keys. M Use the small arrows in the window to move by one record. You can also click to any point of the function to select the nearest record. If you click with the right mouse button, you can also see the identifier of the nearest record until you release the mouse button. (A point of the function may represent more than one record. In this case, you can see the identifier of the first one only.)
Discrete window	K Use the cursor up/down, [PGUP], [PGDN], [HOME] and [END] keys. M Click inside a category to select the first record that belongs to it.
Relational window	K Use the cursor keys and the [PGUP], [PGDN], [HOME] and [END] keys to move by the sorting order of the first field. To move by the sorting order of the second field, use the same keys, with the [ALT] key held down.
M	Use the small arrows in the window to move one by one, or click on any point to select the record it represents. If you click on a point with the right mouse button, you can see the record identifier until you release the button.


4.6.2. Modifying the local selections

Identifier window	K Select the record by using one of the above methods and then press the [INSERT] key. The small rectangle showing the local selection state will appear. DataScope will then move to the next record, so you can select several records comfortably by pressing the [INSERT] key several times. You can similarly delete the local selection of the selected record, but use the [DELETE] key.
M	With the [CTRL] key held down, click on the record identifier with the left mouse button. Deleting the local selection of a record happens similarly, but with the right mouse button.

Numeric window	K The same keys can be used as in an identifier window. M With the mouse, you can select an interval. Move the mouse cursor to one end of the interval on the function curve, press the [CTRL] key and the left mouse button, move to the other end of the interval, and release the mouse button. All records falling into the interval will be locally selected. Deleting the local selection of an interval is done similarly, but with the right mouse button.
Discrete window	K The same keys can be used as in an identifier window. M Hold down the [CTRL] key and click inside the category area with the left mouse button in the diagram. To delete the local selection of a category, use the right mouse button.
Relational window	K The [INSERT] locally selects the selected record by both fields, and moves to the next one by the sorting order of the first field. The [DELETE] key can be used to delete the local selection for a record. If you wish to move by the second field after locally selecting/deselecting a record, hold the [ALT] key down while using the above two keys.
M	Press the [CTRL] key and the left mouse button, and then frame the area you wish to select. The records falling into the frame will be locally selected by both fields. Deleting the local selection of an area can be done similarly, but you need to use the right mouse button.


4.6.3. Moving only on globally selected records

Use the same moving methods as described in Section 4.6.1., but with the [SHIFT] key held down.


4.6.4. Adding/removing record markers

Select the record you wish to mark and type the desired two letters or numbers. To delete the marker of a record, select the record and press the [BACKSPACE] key. You can delete all record markers simultaneously with the Data/Delete all record markers menu command.


4.7. ODBC basic concepts

ODBC	The purpose of the ODBC (Open Database Connectivity) standard is to make database processing software independent of the type of database used.
Data sources	The basic unit of the ODBC is the data source. A data source usually contains all information about a specific task. Data sources consist of tables which are related to each other. The rows of a table contain information about entities, while the columns of the table hold the various features of one individual. An example of a table is the file 83CARS.TXT, where the rows contain cars, and the columns (separated by commas) contain the various features of the cars.
Types of data sources	The physical layout of the data sources depends on the database types. There are two main types:
1.	For modern, SQL-based, client-server architecture systems (e.g. Oracle, Sybase), the data source means a database on the server, and the table is a natural concept.

2.	ODBC can also be used to read data from the traditional database formats (dBase or FoxPro), and even simpler, non-database formats, such as an Excel or a text file. Such a file can be regarded as a table. The data source concept is not absolutely necessary, but it is also defined to preserve consistency: the data source is a DOS subdirectory containing files of the same type.

For users familiar with dBase: a table is a .DBF file, while the data source is a directory containing .DBF files, indexes and other utility files. (Of course, a data source may consist of many more components for a modern SQL-based client-server architecture system, but we are interested only in the tables from the point of view of DataScope.) For Excel users: a table is an Excel spreadsheet, or a part of it, while the data source could be a directory containing Excel files.

Configuring data sources	The ODBC is implemented through drivers, which handle the various database types, showing a unified interface to the application. There is one place where you need to intervene: you need to configure the drivers. The closer the data source type to the modern database concept, the less effort required to configure its driver. For example, a client-server system requires only a user name, a password and a database name.
At the other end there is the text file driver, which requires the most information, because there can be anything in a text file. No field types or any helper information about its structure is stored in the file. Although the text ODBC driver provides much help (e.g. it can guess the column data types), you need to specify some essential format information before pre-processing a text file.

You can configure data sources with the ODBC icon of Control Panel. If you double-click on the icon, the list of existing data sources (and their drivers in parentheses) appears. You can modify the parameters of a data source (Setup button), delete a data source (Delete), and add a new data source (Add).

Deleting data sources	Click on the Delete button to delete a data source. A prompt appears, asking you whether you are sure you want to delete the data source. Deleting a data source does not mean that you delete the original database it represents.
Adding a new and configuring an existing data source	If you are adding a new data source with the Add button, first you have to select its ODBC driver. (Configuring an existing data source only differs in that this step does not exist.) A dialog box appears, with a list of installed ODBC drivers. Select the driver you wish to use.
A dialog box appears, where you can set its parameters. This dialog box varies from driver to driver. The dialog box below, for example, appears when you select the dBase driver:

The name of the data source is required. You can optionally specify a short description. You have to select the version of the dBase files that this data source represents. (You need to reconfigure the data source or add a new one if you want to use it to represent the other dBase version.) You can select a directory where the files reside, or instruct the driver to use the current subdirectory. During pre-processing, you can change the current directory from DataScope.

As we mentioned earlier, the above dialog box looks different for different data source types. Since there are many ODBC drivers, we cannot describe all of them. However, each ODBC driver has detailed help about its use. You can view this help by clicking on the Help button.

Example	In this example, you will create a data source which can be used to pre-process the 83CARS.TXT example text file installed with DataScope. The steps below can be executed only after installing both DataScope and the 'Text files' ODBC driver (see Section 2.2.).
1.	Start Control Panel and double-click on the ODBC icon. The list of existing data sources appears. (The list may be empty.)

2.	Push the Add button. The list of installed ODBC drivers appears. Choose the 'Text files' driver and click on  OK.

3.	The driver configuration dialog box appears. First specify the name of the data source, let it be 'DataScope examples', for example. Then push the Select Directory button and navigate to the EXAMPLES subdirectory of the DataScope directory.

4.	Click on the Options button. The dialog box will enlarge to show more parameters. You can see a file extension list here. When the ODBC driver looks for tables in a directory, it will examine and display the files with the specified extensions only. You can add new extensions to the list by unchecking the Default check box, typing the new extension into the edit field and then pushing the Add button. An extension can be removed from the list with the Remove button. In this example, it is sufficient if the list contains the '*.txt' element.

5.	Now you have to specify the format of the text files that this data source represents. This is a special step needed only for text files. Since a text file can contain anything, the driver needs help to determine the file format (e.g. the separator and type of the fields). This help can be given with the Define Format button.

The list in the upper left corner shows the text files in the selected directory. To set the parameters for one file, select it from the list. If you select the '<default>' element, you can set parameters which will be used for all text files having no exact format specified.

You can select either of the two elements of the list. If you have many files with the same format in this directory, choose '<default>'. If you have a file that has a unique format, select it from the list and specify its parameters separately. In the latter case, you can specify even the names and types of the columns (but this is usually not necessary, because the driver is able to guess the data types.)

We describe only the two parameters needed for this example. You can get detailed information about additional possibilities with the Help button.

Check the Column Name Header box. This means that the first row of the file contains the names of the fields. Select the 'CSV Delimited' option from the Format list, which means that the columns are separated by commas.

6.	Click on OK to return to the previous dialog box described in Step 4. Also click on OK here. The data source is now created. During the pre-processing operation, you only need to select its name.

7.	To use the data source you have just created, continue your reading with the next section (the description of the File/Preprocessing command).


4.8. The File menu


4.8.1. Preprocessing

Please read Section 4.7. before reading this section.

This menu command can be used to read data from a database table and convert it into DataScope format. DataScope creates indexes during the operation, which it will use to respond to your actions quickly.

After you choose this command, the list of existing data sources appears. Select the name of the data source you wish to use. (To use the example data source created in Section 4.7., select its name.)

Another dialog box will appear, containing the list of tables in the data source (in the example, the list of text files in the specified directory). If the selected data source represents files in a directory, the dialog box also shows the current directory, and provides a Directory button in order for you to change it.

!	The dialog box that appears when you push the Directory button contains a file list. Note that this list is provided only to show the files in the current directory,  and not to select a table. You can select a table after returning from the Select Directory dialog box.
DataScope now reads the field names of the table. Another dialog box appears, where you need to specify the types of the fields from the point of view of DataScope:

1.	Select a field in the left list.

2.	If you cannot determine the field type on the basis of its name, you have the possibility to view the values of the fields for several records. To do this, double-click on the field name in the left list, or select the field and push the View contents button. A list will appear, showing the values. For example, if you double-click on the 'Price' field during pre-processing of 83CARS.TXT, you get the following list:

3.	Click on one of the three type buttons to move the field to the right list (see the description of the types in Section 3.4.).

-	If the field serves as the identifier of the record (names of the cars, for example), push the Identifier button. The field will be represented with a list.

-	If the field contains many different (mostly) numeric values, (e.g. prices or consumption values), choose the Numeric button. These fields will be represented with their distribution function.

It is not a problem when a field does not contain numeric value for all records. If DataScope cannot recognize the value as numeric, it automatically assigns an 'N/A' value to the field of that record. These records do not appear in the distribution diagram of the field.

-	If the field contains only a few different numeric values, it is better to select the Discrete type. DataScope will create categories of the records, and display these categories by using traditional pie, bar and distribution diagrams.

-	If the field contains non-numeric values, select the Discrete type. (An example is the 'Fuel' field of 83CARS.TXT, which contains the values 'D', 'NF' and 'SF'.) DataScope will create categories of the records. A category will hold records whose fields have the same value.

4.	Repeat steps 1-3 for all fields you wish to read from the data source.

5.	If you have changed your mind about pre-processing a field, select it in the right-side list, and move it back to the left list with the Delete button.

6.	After specifying the fields and their types, click on OK. The operation may take a longer time for large databases. The status bar shows the status of the process. You can abort the procedure at any time by pressing the [ESC] key. (You may not get an immediate response during the sorting phase.)

7.	The pre-processing operation is finished now. It is a good idea to save your project now. Then use the Window/Open windows menu command to open field windows for analysis.

8.	If you have imported fields with discrete type, DataScope automatically assigns a three-letter short name to each field value by trimming the first 3 characters. If a field has more than one value with the same first three letters, they will have the same short name and these categories might merge. You may want to change the short names assigned by DataScope. If so, use the Field/Short names menu command.

9.	If you wish, you can use the Data/Names & measurements command to assign measurement units to the numeric fields of the project. The assigned units will appear next to the value of the selected record in numeric windows.


4.8.2. Open

Use this menu command to open a DataScope project file. You can specify the name and path of the file in a dialog box. If you wish to change the current disk drive or directory in the dialog box, select the new drive/directory in the appropriate list and then click on OK.

When the project has been loaded, the field windows that were open last time will appear automatically. The caption of the DataScope main window will hold the project name.

You can also open a project file by dragging it into the DataScope window from File Manager, or specifying the file name in the command line at startup. If you are not familiar with these methods, refer to your Windows documentation.


4.8.3. Close

This menu command closes the current project. If you have made changes since the last save, you will be asked whether you wish to save the changes.


4.8.4. Save

This saves the active project. (See the next menu command for details.)


4.8.5. Save as

Use this command to save the current project to a new file. A similar dialog box appears as for the File/Open command. You can specify the drive, directory and name of the new file. If you specify an existing file, you will be asked whether you want to overwrite it. If you answer Yes, the contents of the old file will be lost.

After successful saving, the title of the DataScope window will change to show the new file name. Further File/Save commands will use the new file.

!	Appendix B contains detailed information about the approximate memory needed to store a project. The amount of disk space required for a project is similar.


4.8.6. Search

Use this command to search for project files on your disk drives. You can specify the conditions of the search in the dialog box that appears.

You can select the drives where you wish to search in the left list. You can also specify a DOS file specification to filter the files found. Further filtering is possible by specifying a text in the Title contains field: DataScope will examine the titles of the files found, and will include a file only if its title contains the specified text. The comparison is not case-sensitive, i.e. if you specify 'EXAMPLE', DataScope will list files whose title contains 'example', 'ExAmPlE', etc. (See the File/Information menu command to learn how to specify a title.)

After specifying all conditions, push the Search button to start the process. If there is no file that matches the given conditions, a message appears. Otherwise, a list appears, containing the names and titles of the files found. You can select and open a file.

If you choose Cancel in this dialog box, you will be returned to the previous one. You can specify new conditions and perform a new search.


4.8.7. Information

This menu command brings up a dialog box containing information about the current project file. You can assign a title and a short description to the project. The title is also used by the File/Search command.


4.8.8. List of recently used files

This list contains the most recently used four files. You can select a file and open it in the same way as you would select any other menu command.


4.8.9. Exit

This exits DataScope. If your project has been modified, it asks if you want to save the changes. Choose Cancel if you do not want to exit.


4.9. The Edit menu


4.9.1. Copy

Use this command to copy the diagram of the active field window to the Clipboard. You can then paste the picture into the documents of other Windows applications by using their Edit/Paste command.

The copied picture will have the currently selected colors. If you wish to copy the picture in other colors, use the Options/Colors command before the Edit/Copy command.

If the active window is of identifier type, this command copies an alphabetical list of the record identifiers. The name, record marker and global selection state of the identifier will be copied, separated by tabs. For example:

...

Opel Kadett GL 1.7 D

Opel Kadett LS 1.3i	(*)

Peugeot 205 GTI	P2

Peugeot 205 XLD

Peugeot 205 XR	(*)

Peugeot 309 GR	P3	(*)

Peugeot 309 GRD

Peugeot 405 GL	(*)

Peugeot 405 GRD

Peugeot 405 GRI	P4

...

The records marked '(*)' are globally selected. You can paste the copied text to a word-processing application (you may need to set the tab stops to arrange the columns), a spreadsheet, or any application that works with text.


4.10. The Data menu


4.10.1. View

This menu command brings up a dialog box, in which you can see the project's data in a spreadsheet. You can select a part of the data and copy it to the Clipboard. (See Section 4.16. for information about using the spreadsheet.)


4.10.2. Search

You can search for a record by the value of one of its fields. A dialog box appears where you can select the field and specify the data you wish to find. DataScope finds the specified value (or the closest one), and selects the record.

If you want to find a price, for example and you specify the price '22000' in the dialog box, DataScope will select the first car whose price is 22000 DEM. If there is no car with this price, the closest one will be selected.

If you search by an identifier field, it is sufficient to specify the start of the identifier. If you search by a discrete field, you need to specify the exact full or short name of the category you wish to find.


4.10.3. Names & measurements

Use this command to modify the names and measurements of the project fields. A dialog box appears, containing a spreadsheet (see Section 4.16.).

The specified measurements appear at the bottom of the numeric field windows. The display of the measurements can be toggled on/off with the Options/Show measurements menu command.


4.10.4. Field remarks

This command can be used to view and modify the remarks attached to the project fields. DataScope assigns a default remark to every field; this remark refers to the method of creation of the field (read from a database during pre-processing, created with the Selection/New field from global or with the Data/New field from weighted sum command).

Select the desired field from the list to see/modify its remark.


4.10.5. Delete all record markers

This command deletes the one- or two-letter record markers of all records. See Section 4.6.4. for help on adding and deleting individual record markers.


4.10.6. New field from weighted sum

With this menu command, you can create a new numeric field based on the weighted sum of other project fields. This is a simple decision-support procedure, which can be done by following these steps:

1.	Specify the sorting direction for all fields so that a higher percentage value represents a better record. To achieve this, set the sorting order to descending for fields where the record is better when the field value is lower. (Examples are the 'Price and the 'Consumption' fields).

2.	Choose this menu command. Specify a name for the new field.

3.	Specify the weights of the fields. If you wish to leave a field out, specify a weight of 0. The weights can be arbitrary positive numbers; only their proportions matter. The formula the operation will use is shown at the bottom of the dialog box.

4.	DataScope cannot determine the 'goodness' of discrete categories, so it is your task to specify your opinion by assigning point values to them. Point values can be specified in the right-side spreadsheet, with numbers between 0 and 100. (This spreadsheet appears only if you have selected a discrete field in the left spreadsheet.)

5.	You can also specify a constant value which will be added to the result.

6.	Click on the Create button. If you have specified the sorting directions correctly, the new field is created so that a higher value represents a better choice (according to your opinion specified through the directions, weights and category points.)

!	When DataScope calculates the value of the new field for a record, and any of the record's fields used in the formula contain 'N/A', the result will also be 'N/A'.
If you later wish to see the conditions on which the new field is based, use the Data/Field remarks menu command.

If you push not the Create, but the Close button after specifying weights, then no new field will be created, but the weights and point values will be saved.

!	This command can also be used to convert a discrete field to a numeric field. See Section 3.5. for details.


4.11. The Field menu


4.11.1. Direction

Use this command to change the sorting direction of a numeric field. If you issue this command while a numeric field window is active, the sorting order of the field represented by the window will be reversed. If you use this command for a relational window, you will be prompted for the sorting direction of the two fields the window represents.

If you change the direction of a field, your changes will be reflected in all windows representing the field.

By changing the direction, you can see the 'goodness' of individual records more easily. For the car database, it is true for all numeric fields that a lower value represents a better car. (The only exception is the 'Performance' field.) It is a good idea to change the direction of these fields to descending. After this, a higher percentage value will indicate a better car by all numeric features.

Setting the direction is also needed for the Data/New field from weighted sum menu command (see the details there).


4.11.2. Change view

This command can be used for discrete windows only. With it, you can change the view type of the window. See Section 3.4. for more information about the types.


4.11.3. Short names

Use this command to change the short names of the categories of the discrete field represented by the active window. The command is available only if the active window is a discrete type.

DataScope makes categories of the records having the same value for the discrete field. The names of the discrete fields may be too long to fit on the diagrams, so DataScope assigns a three-letter short name to the categories, and displays these on the discrete diagrams.

You can modify the short names in a spreadsheet. (Section 4.16. will give you help in using the spreadsheet.) The first column contains the original category names. The second contains the short names. You can modify only the contents of the second column.

The short name is not only good for displaying purposes. You have the possibility to merge categories. If you assign the same short name to some categories, and these categories follow each other in the sequence (see the Field/Rearrangement command), the categories will be merged. (See also the description of discrete windows in Section 3.4.)


4.11.4. Rearrangement

Use this command to change the sequence of the discrete categories. The categories will appear in the diagram in the specified order. A dialog box appears with a list, whose elements can be rearranged.

To move a list element, hold down the left mouse button above the element and drag it to the new place.

From the keyboard, select the element, press the [CTRL] key and use the cursor up/down keys to move the element.

The sequence plays an important role in merging discrete categories. If you assign the same short name to two or more categories, and they follow each other in the sequence, the categories will be merged. (See also the Field/Short names menu command.)


4.11.5. Delete

Use this command to delete fields from the project. A dialog box appears, where you can select the fields you wish to delete.

This command is useful if you have created many fields with the Selection/New field from global and the Data/New field from weighted sum commands, and some of the fields became superfluous. It is a good idea to delete them because in this way you can save memory and disk space.

!	This command allows you to delete those fields that have been read from a data source during pre-processing. Note that there is no way to add fields to a project; you must create a new project if you want to use the fields again.


4.12. The Selection menu


4.12.1. Complement local

This complements the local selection of the field(s) represented by the active window. Locally selected records will become unselected, and unselected records will become selected. (See also Section 3.3.)


4.12.2. Delete local

Use this menu command to locally unselect all records by the field represented by the active window. If you issue this command while a relational window is active, the local selection of both fields will be deleted.


4.12.3. Delete all locals

Use this command to delete the local selection for all fields. This command is useful if you wish to begin a new filtering and wish to ensure that no local selection exists except those that you create later.


4.12.4. Intersection

This deletes the global selection and creates a new one containing the records that are locally selected by all fields. (See also Section 3.3.)

!	'All fields' means 'All fields that are represented in at least one open field window and whose local selection is not empty.' DataScope does not work with fields that are currently invisible, and with fields having no selection at all.
Use the intersection if you wish to examine 'and'-type relations. For instance, if you wish to find cars whose price is lower than 20000 DEM and whose consumption is lower than 7 l/100 km and whose performance is greater than 50 HP, locally select the appropriate cars by the three fields and then create their intersection.


4.12.5. Union

Deletes the global selection and creates a new one which contains the records that are locally selected by at least one field. (See also Section 3.3.)

!	Fields that are not represented in any open field window does not take part in the operation.
Use the union operation if you wish to examine 'or'-type connections. For example, if you wish to find cars whose price is lower than 15000 DEM, or whose consumption is lower than 7 l/100 km, locally select the appropriate cars by the two fields, and perform an union operation.


4.12.6. Complement

Use this command to complement the global selection. Globally selected records will become unselected; unselected records will become selected.


4.12.7. Delete

This command deletes the current global selection. All records will become globally unselected.


4.12.8. New project from global

This command creates a new DataScope project, which contains only the globally selected records. First, you get a chance to save the current project. DataScope then deletes all records from the project that are not globally selected, and names the new project 'Untitled'.


4.12.9. New field from global

This command creates a new field based on the current global selection. The new field can have two types:

1.	Discrete field. This field consists of two categories: 'Yes' and 'No'. Records in the current global selection go to the 'Yes', whereas other records go to the 'No' category.

This field type is useful if you have created a global selection by using one of the union and intersection operations, and you wish to handle the records in the selection easily, or apply the other operation to the records in the selection. See Section 3.3. for more information about this field type.

2.	Numeric field. This field is created on the basis of another numeric field of the project. For records in the current global selection, the contents of the base field will be copied to the new field. For records not in the global selection, the new field will contain 'N/A'. DataScope does not display records with 'N/A' field values in the distribution diagram of the field , so if you display this field, it will show only the distribution of the records in the current global selection. See Sections 3.3. and 3.4. for more information about the use of this field.

A dialog box appears, where you need to specify the name of the new field. Choose the field name carefully to help you remember what condition the field represents. If necessary, use the Data/Field remarks menu command to attach a longer remark to the field.


4.13. The Options menu


4.13.1. Colors

Use this command to specify the colors of the various elements of the DataScope diagrams. A dialog box appears. Select the diagram element whose color you wish to change. Then use the other controls of the window to change the color.

The Presets buttons set default color combinations. They set the colors for all elements. Other controls can be used to change the colors of individual elements.

The Basic Colors show the colors available on the current display device. The number of colors displayed here depends on the device type. You can click on a rectangle to select a color.

The Custom Colors list holds user-defined colors. If you select a color and press the Add to Custom Colors button, the color will be added to the next available space. You can select colors by clicking on their rectangles. Custom colors are preserved until you exit DataScope.

The controls on the right side can be used to specify an arbitrary color. This can be done in two ways. One way is to specify the hue, saturation and luminescence of the color, either by using the bar and the rectangle on the right side, or by typing the  values into the edit fields. The other way is to specify the amounts of the red, green and blue components of the color. This can be done only by specifying the values.

The left side of the Color/Solid rectangle shows the selected color, while the right side shows the nearest solid color. If you have selected a color and wish to use the nearest solid color, double-click on the solid color in this rectangle.


4.13.2. Show measurements

This command toggles the display of the measurement units of numeric fields. If the toggle is on, the measurement units appear at the bottom of the numeric field windows, next to the value of the current record.

The measurement units can be specified with the Data/Names & measurements menu command.


4.13.3. Show toolbar

This command toggles the display of the toolbar.


4.13.4. Show status bar

This command toggles the display of the status bar.


4.13.5. Save as default

This command saves the current color settings and the status of the Options/Show measurements toggle to the DataScope initialization file. New projects created with pre-processing will use the saved settings.


4.14. The Window menu


4.14.1. Open windows

Use this command to open field windows for analysis. A dialog box appears, where you can specify which windows to open.

There are two lists in this dialog box. The left list contains the names and types of the project's fields. The right-side list is the list of currently open field windows. (See Section 3.2. for details on the field types, and Section 3.4. for information on the field window types.)

Opening field windows

1.	Select a field in the left list.

2.	If you wish to open a window representing the field, push the Normal button. The name of the field will appear in the right-side list.

3.	If you wish to open a relational window representing two numeric fields, click on the Relational button. (The button is available only if you selected a numeric field.) A dialog box appears, where you can select the name of the second field. (This list contains the numeric fields, except the one you have selected before pushing the Relational button.)

After you click on the OK button, the right-side list will have a new element: the names of the two fields, separated by a comma.

4.	Repeat steps 1-3 until the right list contains all the desired elements. You can open a maximum of 16 field windows simultaneously.

Closing field windows

1.	Select the window you wish to close in the right list.

2.	Click on the Delete button. The selected element will disappear from the list.

Changing window sequence

The sequence of the field windows determines the sizes of the windows. A window in a specific place in the list is always larger than or equal size to the windows after it. If you wish to see a field's data in a larger window, move the window forward in the sequence.

To change the sequence, first select the window you wish to move in the right-side list. Then hold the left mouse button above it, and drag the item to its new place. From the keyboard, hold down the [CTRL] key and use the cursor up/down keys to move the element.


4.14.2. Arrange all

This arranges all open field windows side by side so that all of them are visible. (This operation is also executed after you close the dialog box of the Window/Open windows menu command.)


4.14.3. Maximize/Restore

This command enlarges the active field window to fill all the available space in the DataScope main window. If you issue the command on an already maximized window, the window will be restored to its original size.


4.14.4. Next

This command activates the next field window in the sequence. (You can also activate a window by clicking inside it with the left mouse button.)


4.14.5. Previous

This command activates the window preceding the active field window in the sequence. (You can also activate a window by clicking inside it with the left mouse button.)


4.15. The Help menu


4.15.1. Index

This command shows the main help index of DataScope, where you can select the topic you are interested in. (See also Section 4.3.)


4.15.2. Using Help

Use this command to obtain information about the use of the Windows Help Engine, the application that displays DataScope Help for you. (See also Section 4.3.)


4.15.3. About

This command displays version number and copyright information in a dialog box.


4.16. Using the spreadsheet

You will meet with the spreadsheet many times while you use DataScope. This section gives you information about using it. Not all possibilities mentioned here can be used in all spreadsheets of DataScope.

To select a cell:

K	Use the cursor keys to move one by one.

Use the [PGUP] and [PGDN] keys to move up/down in larger steps.

The [CTRL+LEFT] and [CTRL+RIGHT] keys can be used to move left/right with larger steps. You can move to the top/bottom of the sheet with the [CTRL+PGUP] and [CTRL+PGDN] keys.

The [CTRL+HOME] and [CTRL+END] keys take you to the left/right edge of the sheet.

M	Use the scroll bars to scroll the cell into view and click inside it with the left mouse button.

To change the value of the selected cell:

K	Start typing the new value, or press [ENTER] and edit the old value. If the cell is read-only, you hear a beep, and these procedures have no effect.

To select a rectangular range of cells:

K	Move to one corner of the rectangle by using the above method, hold down the [SHIFT] key and move to the opposite corner.

M	Push the left mouse button above the cell in one corner of the rectangle, and move the mouse cursor above the opposite corner with the left button held down.

To copy the selected rectangular range of cells to the Clipboard:

K	Use the [CTRL+C] or the [CTRL+INSERT] key combination.

To change the width of a column:

M	Move the mouse cursor near to the right edge of the column heading. If you move near enough, the mouse cursor will change to a double-headed arrow. (If not, you cannot resize the columns in this spreadsheet.) Hold down the left mouse button, and drag the vertical line that appears to the desired place.


5. Appendix


A. Hot key reference

This section lists the hot keys which can be used instead of the menu, in order to make your work faster.

Key	Menu command

[CTRL+O]	File/Open

[CTRL+S]	File/Save

[CTRL+C]	Edit/Copy

[CTRL+INS]	Edit/Copy

[F1]	Help/Index

[F2]	Data/View

[F3]	Data/Search

[CTRL+D]	Field/Direction

[F4]	Field/Change view

[F5]	Selection/Complement local

[SHIFT+F5]	Selection/Delete local

[CTRL+I]	Selection/Intersection

[CTRL+U]	Selection/Union

[F8]	Selection/Complement

[SHIFT+F8]	Selection/Delete

[F9]	Window/Open windows

[TAB]	Window/Next

[SHIFT+TAB]	Window/Previous

Other hot keys:

Key	Description

[F1]	Press this key in dialog boxes to get help about the use of the dialog box.

[SHIFT+F1]	If you press this button, the mouse cursor changes to the combination of an arrow and a question mark. You can select a menu command or click on any part of the DataScope window to get help about the selected object. (This can also be done by pushing the last button of the toolbar.)

Section 4.6. contains information about keys that can be used in a field window. Keys that can be used in a spreadsheet are described in Section 4.16.

We do not mention the standard Windows keys combinations that are the same for all Windows applications. Refer to your Windows documentation about these.


B. Memory requirements of projects

The amount of memory required by a project mainly depends on the amount of database data the project contains. The following formulas will help you to determine the approximate amount of memory needed.

Memory needed to store the data of the database (in bytes):

P » memory used by the record's fields ´ record count

The memory used by one field is: 7 bytes for a discrete field, 13 bytes for a numeric field, and the length of the longest identifier + 5 bytes for an identifier field. Naturally, only the fields imported from the database should be taken into account.

The project also contains some helper information, but this information does not need a considerable amount of memory, even for large projects (5-20 KBytes is enough).

The calculated amount also specifies the disk space needed to store a project.

!	Of course, DataScope also needs memory to run. It is difficult to determine the amount of memory needed, but you can approximate that it is not more than 500 KBytes.
Virtual memory	The memory required by a project does not need to be physical memory (RAM). For 386 machines or better, there is a possibility to use virtual memory. Virtual memory simulates memory on the hard disk. By using virtual memory, you can create about 10 MBytes of free memory for DataScope projects. If this is not enough, use one of the procedures at the end of this section.
Virtual memory can be created by starting Control Panel and choosing the 386 Enhanced icon. Push the Virtual memory button in the dialog box that appears. Note that Windows will not use more virtual memory than the amount it recommends here. If it recommends a too small amount, there is probably not enough free space on your hard disk. If another problem arises, refer to your Windows documentation for detailed information.

Too large databases	If the database is too large, you will get an error message during pre-processing. If this occurs, you have the following possibilities:
1.	You can try to increase the amount of virtual memory.

2.	You can decrease the size of the project by leaving out fields during pre-processing. If there are fields you do not wish to compare, it is a good idea to make two or more projects, each of which contains only the fields you wish to compare with each other.

3.	You can decrease the number of records in the database, e.g. you can create a representative sample from the data. This can be done only with the original software that has created the database. For example, if you have a dBase file, make a copy of it and then use the DELETE ALL FOR <condition> and the PACK commands to delete records.


C. Data limits

DataScope has certain limits that apply to the data it reads from a database table. These limits are as follows:

-	Identifiers can be a maximum of 31 characters long. Longer identifiers are trimmed to this length.

-	Full names of discrete categories can be a maximum of 15 characters long. Longer names are trimmed. The maximum length of short names is 3 characters.

-	The numeric data should be between -10100 and 10100. Larger numeric values are regarded as 'N/A'.

The projects also have limitations:

-	A project can contain a maximum of 32000 records.

-	A project can have a maximum of 250 columns.

-	The maximum length of column names is 31 characters.

-	The maximum length of measurements is 15 characters.


D. Troubleshooting

This chapter lists some of the possible error situations and their solution. If you cannot find a solution here, please contact us. We will need the following information in order to help you:

1.	The contents of AUTOEXEC.BAT and CONFIG.SYS.

2.	A detailed description of the machine used (processor type, amount of RAM installed, adapter cards installed, type of network, etc.).

3.	Your Windows configuration (standard or 386-enhanced mode, is it an Eastern-European version, etc.).

4.	A list of other applications that were running when the error occurred.

5.	A detailed description of the operations that caused the error. Note that if we cannot reproduce an error, we cannot help you.

6.	The exact text of the error message(s) that appeared.

Installation problems

1.	Setup checks whether there is enough disk space available before it starts copying files. The ODBC Setup copies files to the Windows directory, so there should be enough free disk space on the Windows drive, too.

It is possible that an out-of-disk-space error occurs during copying files. This can occur if you use on-line disk compression software, such as DoubleSpace. These programs show more disk space for the applications than the actually available space.

2.	DataScope requires Windows 3.1 or later.

3.	Setup copies files to the Windows directory. Setup should be able to write this directory (e.g. you need to have the right to write to this directory on a network.)

4.	If any other error occurs, please contact us. The most probable problem is that your Setup disk is physically damaged. We will replace your Setup disk free of charge.

DataScope won't start (without any message).

The most probable cause is that there is not enough free memory available. Try closing other applications.

DataScope won't start (with message 'Can't load <filename>').

DataScope is not installed correctly, or you have deleted some files that are needed to run DataScope. Reinstall the software from the installation disks.

This error may also occur if you did not run Setup from both installation disks. You need to install Microsoft ODBC even if you do not wish to use the File/Preprocessing command. (Do not select any drivers from the list in this case, and only the necessary ODBC core modules will be installed to your system. Later, you can install drivers by running Setup again.)

Error messages starting with 'Not enough memory...'

Try closing other applications. Try creating more virtual memory by using Control Panel. (See also Appendix B.)

File read/write errors

Most probable causes are: too many open files, disk full, or physical disk error.

If you run many applications at the same time, and they open too many files, the first case may occur. Close some applications, or increase the FILES= setting in CONFIG.SYS.

If your disk is full, do not exit DataScope without saving your project. Start File Manager and delete some unnecessary files. Then try saving your project again.

If a physical error occurs, try to save the project to another hard disk, or to a floppy disk.

DataScope works slowly and uses the hard disk intensively.

This occurs if your system is low on memory. Close other applications, or install more RAM into your machine.

Column names are empty or trimmed when a comma-separated text file is imported.

The ODBC text driver reads only the first 30 characters of a column name, including leading tabs and spaces. DataScope then strips tabs and spaces. This can result in an empty column name if there are more than 30 spaces/tabs before the name begins. Open the file with a text editor and change spaces to tabs or delete the spaces before the column name.

'Invalid column data type' error message from the ODBC driver during pre-processing.

Some ODBC drivers handling simpler files (e.g. the Excel or the text file driver), read the first n rows of the file to determine the data types of the columns. If, for example, a column contains only numeric values for the first n  records, the driver will regard the column as numeric. If the driver finds a non-numeric value in the column later, it displays this error message.

To solve the problem, configure your data source. These drivers have a Rows to scan option; this is the value of n. Increase this number, or specify the value 0 to instruct a driver to examine the entire file when determining column data types.

An Excel file does not appear in the table list during pre-processing.

Open the file in Microsoft Excel and select the range that you want ODBC to regard as the table. Then use the Data/Set database command of Excel to mark this range as a database table. Save the file and try again.

The database range can be anywhere in the spreadsheet, i.e. it does not have to be placed into the upper-left corner of the sheet.

If the file still does not appear, your Excel file version is too high. The Excel driver can read Excel files up to 4.0. If you have a later version of Microsoft Excel, open the file with it, choose the File/Save As menu command, and save the file as Excel 3.0 or 4.0.

Other problems: DataScope does not operate as expected.

Please read the appropriate section of the manual and check whether you have misunderstood something. If not, please contact us, providing the information listed at the beginning of this section.